#ifndef NOTIFICATIONSAREA_H
#define NOTIFICATIONSAREA_H

#include <QtGui/QWidget>
#include "notify.h"
#include <vector>
#include <QPropertyAnimation>
#include "../plugininterfaces.h"

/*!

BlackRabbit - OpenSource IDE.
@author Edward Sarkisyan (edward.sarkisyan@gmail.com)
Use LGPL (http://www.gnu.org/copyleft/lesser.html)

*/

namespace Ui {
    class Notify;
}

using namespace std;

namespace Ui {
    class NotificationsArea;
}

class NotificationsArea : public QWidget {
    /*!
      @class NotificationsArea
      @author Edward Sarkisyan
      Area where will collecting notifications
      */
    Q_OBJECT
public:
    /*!
         Constructor
        @arg parent parent widget
    */
    NotificationsArea(QWidget *parent = 0);
    /*! Destructor */
    ~NotificationsArea();
public slots:
    void notify(NOTIFICATION_INFORMATION);

protected:
    void changeEvent(QEvent *e);

private:
    QPropertyAnimation *animation;
    Ui::NotificationsArea *m_ui;
    vector<Notify*> nots;
    /*!
      void paintEvent( QPaintEvent * e);
      @arg e function calling when need to paint/update something on widget
      */
    void paintEvent( QPaintEvent * );
private slots:
    /*!
      Slot activing when programm/plugin need to add new notification
      */
    void on_addNotify_clicked();
};

#endif // NOTIFICATIONSAREA_H
